Members
Overall Objectives
Research Program
Application Domains
New Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Partnerships and Cooperations
Dissemination
Bibliography
XML PDF e-pub
PDF e-Pub


Section: New Software and Platforms

Finite Fields

Participants : Pierrick Gaudry, Emmanuel Thomé [contact] , Luc Sanselme.

mp𝔽q is (yet another) library for computing in finite fields. The purpose of mp 𝔽q is not to provide a software layer for accessing finite fields determined at runtime within a computer algebra system like Magma, but rather to give a very efficient, optimized code for computing in finite fields precisely known at compile time. mp 𝔽q can adapt to finite fields of any characteristic and any extension degree. However, one of the targets being the use in cryptology, mp 𝔽q somehow focuses on prime fields and on fields of characteristic two.

When it was first written in 2007, mp 𝔽q established reference marks for fast elliptic curve cryptography: the authors improved over the fastest examples of key-sharing software in genus 1 and 2, both over binary fields and prime fields. A stream of academic works followed the idea behind mp 𝔽q and improved over such timings, notably by Scott, Aranha, Longa, Bos, Hisil, Costello.

The library's purpose being the generation of code rather than its execution, the working core of mp 𝔽q consists of roughly 18,000 lines of Perl code, which generate most of the C code. mp 𝔽q is distributed at http://mpfq.gforge.inria.fr/ .

In 2014, mp 𝔽q has undergone some sanitization work, related to embedded assembly, build system, coverage test, and processor feature support. The fact that mp 𝔽q is used in Cado-nfs has played an important role in fostering these changes to the mp 𝔽q code. Future plans regarding the linear algebra code in Cado-nfs are expected to rely on the arithmetic part being implemented in mp 𝔽q. Preliminary work in this direction has been implemented by Luc Sanselme. Preliminary code by Hamza Jeljeli and Bastien Vialla from LIRMM, Montpellier, based on RNS arithmetic (Residue Number System) is also to be integrated in this context. We therefore expect more work in this area in the coming months, eventually leading to a new release.